1
ペアを超えて:複数型のグループ化とタプル
AI037Lesson 19
00:00

大規模な C++ システムのアーキテクチャにおいて、一時的なデータのグループ化ごとに正式な struct 構造体を定義することはしばしば過剰です。 std::tuple異種コンテナとして機能し、 std::pair 任意の数の異なる型を格納できるように拡張しています。

1. 初期化と制約

標準コンテナとは異なり、 tuple コンストラクタは 明示的です。リストを使ったコピー初期化はできません。直接初期化または std::make_tupleを使用する必要があります。

tuple<int, double> t1{1, 2.5}; // OK
tuple<int, double> t2 = {1, 2.5}; // エラー!

2. アクセスとメタ情報取得

メンバーは get<i>(tuple_name)を通じてアクセスされ、ここで i はコンパイル時に既知の定数式でなければなりません。メタデータは tuple_size および tuple_element を使って decltypeを使用する必要があります。

std::tuple のメモリ配置文字列get<0>整数get<1>倍精度浮動小数点get<2>

3. 比較論理

タプル同士の比較は 辞書順に行われます。これは、両方のタプルの要素数が同じであり、対応する型が関係演算子をサポートしている場合にのみ有効です。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>